Calculations
for Raw Counter Data
This section
lists the types of performance counters and the calculations that the
Performance Monitor uses to convert the raw data to the information you would
expect from the counter name. The counter types and calculations are defined in
WINPERF.H. For the calculations, the following key applies:
Symbol |
Definition |
N |
Numerator |
D |
Denominator
|
TB |
Time base
(indicates the units of raw data if not used in calculation) |
B |
Base count
(number of entries) |
N0 |
Oldest or
first sample taken (of the numerator in this case; D0 would be of the
denominator) |
N1 |
More recent
sample |
Nx |
Most recent
sample in calculation array (for average calculation) |
PERF_100NSEC_MULTI_TIMER Timer for when
multiple instances are in use, so the result can exceed 100%. The number of
instances is in the next counter.
Element |
Value |
Numerator |
CounterData |
Denominator |
100NsTime |
Time base |
100Ns |
Calculation |
(N1-N0)/(D1-D0) |
Average
function |
(Nx-N0)/(Dx-D0) |
PERF_100NSEC_MULTI_TIMER_INV The inverse of
the timer for multiple instances (when the object is not in use).
Element |
Value |
Numerator |
CounterData |
Denominator |
100NsTime |
Time base |
100Ns |
Calculation |
(B-((N1-N0)/(D1-D0))) |
Average
function |
(B-((Nx-N0)/(Dx-D0))) |
PERF_100NSEC_TIMER Timer for when
the object is in use.
Element |
Value |
Numerator |
CounterData |
Denominator |
100NsTime |
Time base |
100Ns |
Calculation |
(N1-N0)/(D1-D0) |
Average
function |
(Nx-N0)/(Dx-D0) |
PERF_100NSEC_TIMER_INV The inverse of
the timer (when the object is not in use).
Element |
Value |
Numerator |
CounterData |
Denominator |
100NsTime |
Time base |
100Ns |
Calculation |
(1-((N1-N0)/(D1-D0))) |
Average
function |
(1-((Nx-N0)/(Dx-D0))) |
PERF_AVERAGE_BASE Used as the
denominator in the computation of time or count averages.
Element |
Value |
Numerator |
N/A |
Denominator |
N/A |
Time base |
N/A |
Calculation |
N/A |
Average
function |
N/A |
PERF_AVERAGE_BULK A count which
usually gives the bytes per operation when divided by the number of operations.
Element |
Value |
Numerator |
CounterData |
Denominator |
BaseData |
Time base |
N/A |
Calculation |
(N1-N0)/(D1-D0) |
Average
function |
(Nx-N0)/(Dx-D0) |
PERF_AVERAGE_TIMER A timer which
usually gives time per operation when divided by the number of operations.
Element |
Value |
Numerator |
CounterData |
Denominator |
BaseData |
Time base |
PerfFreq |
Calculation |
((N1-N0)/TB)/(D1-D0) |
Average
function |
((Nx-N0)/TB)/(Dx-D0) |
PERF_COUNTER_BULK_COUNT Used to count
byte transmission rates.
Element |
Value |
Numerator |
CounterData |
Denominator |
PerfTime |
Time base |
PerfFreq |
Calculation |
(N1-N0)/((D1-D0)/TB) |
Average
function |
(Nx-N0)/((Dx-D0)/TB) |
PERF_COUNTER_COUNTER Rate of
counts. The most common counter.
Element |
Value |
Numerator |
CounterData |
Denominator |
PerfTime |
Time base |
PerfFreq |
Calculation |
(N1-N0)/((D1-D0)/TB) |
Average
function |
(Nx-N0)/((Dx-D0)/TB) |
PERF_COUNTER_DELTA Difference
between two counters.
Element |
Value |
Numerator |
CounterData |
Denominator |
N/A |
Time base |
N/A |
Calculation |
(N1-N0) |
Average
function |
(Nx-N0)/x |
PERF_COUNTER_LARGE_DELTA Difference
between two counters.
Element |
Value |
Numerator |
CounterData |
Denominator |
N/A |
Time base |
N/A |
Calculation |
(N1-N0) |
Average
function |
(Nx-N0)/x |
PERF_COUNTER_LARGE_QUEUELEN_TYPE Average count
per time interval.
Element |
Value |
Numerator |
CounterData |
Denominator |
PerfTime |
Time base |
PerfFreq |
Calculation |
(N1-N0)/(D1-D0) |
Average
function |
(Nx-N0)/(Dx-D0) |
PERF_COUNTER_LARGE_RAWCOUNT Instantaneous
counter value.
Element |
Value |
Numerator |
CounterData |
Denominator |
N/A |
Time base |
N/A |
Calculation |
(N0) |
Average
function |
SUM(N)/x |
PERF_COUNTER_LARGE_RAWCOUNT_HEX Instantaneous
counter value, as a hexadecimal number.
Element |
Value |
Numerator |
CounterData |
Denominator |
N/A |
Time base |
N/A |
Calculation |
(N0) |
Average
function |
SUM(N)/x |
PERF_COUNTER_MULTI_BASE Base for MULTI
counters.
Element |
Value |
Numerator |
N/A |
Denominator |
N/A |
Time base |
N/A |
Calculation |
N/A |
Average
function |
N/A |
PERF_COUNTER_MULTI_TIMER Timer for when
multiple instances are in use, so the result can exceed 100%. The number of
instances is in the next counter.
Element |
Value |
Numerator |
CounterData |
Denominator |
PerfTime |
Time base |
PerfFreq |
Calculation |
(N1-N0)/(D1-D0) |
Average
function |
(Nx-N0)/(Dx-D0) |
PERF_COUNTER_MULTI_TIMER_INV The inverse of
the timer for multiple instances (when the object is not in use).
Element |
Value |
Numerator |
CounterData |
Denominator |
PerfTime |
Time base |
PerfFreq |
Calculation |
(B-((N1-N0)/(D1-D0))) |
Average
function |
(B-((Nx-N0)/(Dx-D0))) |
PERF_COUNTER_NODATA There is no
data for this counter.
Element |
Value |
Numerator |
0 |
Denominator |
N/A |
Time base |
N/A |
Calculation |
0 |
Average
function |
0 |
PERF_COUNTER_QUEUELEN_TYPE Average count
per time interval.
Element |
Value |
Numerator |
CounterData |
Denominator |
PerfTime |
Time base |
PerfFreq |
Calculation |
(N1-N0)/(D1-D0) |
Average
function |
(Nx-N0)/(Dx-D0) |
PERF_COUNTER_RAWCOUNT Instantaneous
counter value.
Element |
Value |
Numerator |
CounterData |
Denominator |
N/A |
Time base |
N/A |
Calculation |
(N0) |
Average
function |
SUM(N)/x |
PERF_COUNTER_RAWCOUNT_HEX Instantaneous
counter value, as a hexadecimal number.
Element |
Value |
Numerator |
CounterData |
Denominator |
N/A |
Time base |
N/A |
Calculation |
(N0) |
Average
function |
SUM(N)/x |
PERF_COUNTER_TEXT Indicates the
data is not a counter, but is Unicode text.
Element |
Value |
Numerator |
N/A |
Denominator |
N/A |
Time base |
N/A |
Calculation |
N/A |
Average
function |
N/A |
PERF_COUNTER_TIMER The most
common timer.
Element |
Value |
Numerator |
CounterData |
Denominator |
PerfTime |
Time base |
PerfFreq |
Calculation |
(N1-N0)/(D1-D0) |
Average
function |
(Nx-N0)/(Dx-D0) |
PERF_COUNTER_TIMER_INV The inverse of
the timer (when the object is not in use).
Element |
Value |
Numerator |
CounterData |
Denominator |
PerfTime |
Time base |
PerfFreq |
Calculation |
(1-((N1-N0)/(D1-D0))) |
Average
function |
(1-((Nx-N0)/(Dx-D0))) |
PERF_ELAPSED_TIME The data is
the start time of the item being measured. For display, subtract the start time
from the snapshot time to yield the elapsed time. The PerfTime member of
the PERF_OBJECT_TYPE
structure contains the sample time. Use the PerfFreq member of the PERF_OBJECT_TYPE
structure to convert the time into seconds.
Element |
Value |
Numerator |
CounterData |
Denominator |
ObjectTime |
Time base |
ObjectFreq |
Calculation |
(D0-N0)/TB |
Average
function |
(Dx-N0)/TB |
PERF_RAW_BASE Used as a
base. Check that this value is greater than zero before dividing.
Element |
Value |
Numerator |
N/A |
Denominator |
N/A |
Time base |
N/A |
Calculation |
N/A |
Average
function |
N/A |
PERF_RAW_FRACTION Instantaneous
value, to be divided by the base.
Element |
Value |
Numerator |
CounterData |
Denominator |
BaseData |
Time base |
N/A |
Calculation |
(N0/D0) |
Average
function |
SUM(N/D)/x |
PERF_SAMPLE_BASE Used as a
base. Check that this value is greater than zero before dividing.
Element |
Value |
Numerator |
N/A |
Denominator |
N/A |
Time base |
N/A |
Calculation |
N/A |
Average
function |
N/A |
PERF_SAMPLE_COUNTER A count that
is sampled on each sampling interrupt. Must be divided by the base.
Element |
Value |
Numerator |
CounterData |
Denominator |
PerfTime |
Time base |
PerfFreq |
Calculation |
(N1-N0)/((D1-D0)/TB) |
Average
function |
(Nx-N0)/((Dx-D0)/TB) |
PERF_SAMPLE_FRACTION A count that
is either 1 or 0 on each sampling interrupt.
Element |
Value |
Numerator |
CounterData |
Denominator |
BaseData |
Time base |
N/A |
Calculation |
(N1-N0)/(D1-D0) |
Average
function |
(Nx-N0)/(Dx-D0) |